package generic;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @author SWJ
 * @create 2021-06-22 11:07
 * 本类测试map迭代
 */
public class TestMap2 {
    public static void main(String[] args) {
        //创建对象  map m=new map();接口无法实例化
        Map<Integer, String> map = new HashMap<>();

        //在集合中存入测试数据
        map.put(9527, "diyi");
        map.put(9528, "dier");
        map.put(9529, "disan");
        map.put(9530, "disi");
        System.out.println(map);
        //{9527=diyi, 9528=dier, 9529=disan, 9530=disi}

        /**对map进行迭代
         * 1.keySet()】将map中所有的key值取出存入set集合
         *2.Set<Entry<K,V>>entrySet()
         * --把map中的key&value取出，形成一个个Entry<K,V>
         * 将Entry作为一个个独立的元素存入set中
         * */
        //1.将map中的所有key值取出放入set集合中
        Set<Integer> keySet = map.keySet();
        //2.想要遍历集合，要首先获取集合对应的迭代器
        Iterator<Integer> it = keySet.iterator();
        //3.循环遍历集合的每一个元素
        while (it.hasNext()) {
            Integer key = it.next();
            String Value = map.get(key);
            System.out.println(key + Value);
        }

        /**第二种方法
         * 获取迭代器*/
        Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
        //获取迭代器
        Iterator<Map.Entry<Integer, String>> it2 = entrySet.iterator();
        //循环遍历集合中的所有元素
        while (it2.hasNext()) {
            Map.Entry<Integer, String> entry = it2.next();
            Integer key = entry.getKey();
            String Value = entry.getValue();
            System.out.println(key + Value);
            /**9527diyi
             9528dier
             9529disan
             9530disi*/
        }
    }
}
